.TH "rtcInitPointQueryInstanceStack" "3" "" "" "Embree Ray Tracing Kernels 3"
.SS NAME
.IP
.nf
\f[C]
rtcInitPointQueryInstanceStack\ \-\ initializes\ the\ stack\ of\ (multilevel\-)instance
\ \ information\ for\ point\ queries
\f[]
.fi
.SS SYNOPSIS
.IP
.nf
\f[C]
#include\ <embree3/rtcore.h>

struct\ RTC_ALIGN(16)\ RTCPointQueryInstanceStack
{
\ \ //\ accumulated\ 4x4\ column\ major\ matrices\ from\ world\ to\ instance\ space.
\ \ float\ world2inst[RTC_MAX_INSTANCE_LEVEL_COUNT][16];
\ \ 
\ \ //\ accumulated\ 4x4\ column\ major\ matrices\ from\ instance\ to\ world\ space.
\ \ float\ inst2world[RTC_MAX_INSTANCE_LEVEL_COUNT][16];

\ \ //\ instance\ ids.
\ \ unsigned\ int\ instID[RTC_MAX_INSTANCE_LEVEL_COUNT];
\ \ 
\ \ //\ number\ of\ instances\ currently\ on\ the\ stack.
\ \ unsigned\ int\ size;
};

void\ rtcInitPointQueryInstanceStack(
\ \ struct\ RTCPointQueryInstanceStack*\ instStack
);
\f[]
.fi
.SS DESCRIPTION
.PP
A stack (\f[C]RTCPointQueryInstanceStack\f[] type) which stores the IDs
and instance transformations during a BVH traversal for a point query.
.PP
The \f[C]rtcInitPointQueryStack\f[] function initializes the stack to
default values and should be called for initialization.
.PP
The stack will be passed as an argument to the point query callback
function (see [rtcSetGeometryPointQueryFunction]) and should be used to
pass instance information down the instancing chain for user defined
instancing (see tutorial [ClosestPoint] for a reference implementation
of point queries with user defined instancing).
.PP
The stack is an necessary argument to [rtcPointQuery] and Embree
internally uses the topmost instance tranformation of the stack to
transform the point query into instance space.
.SS EXIT STATUS
.PP
No error code is set by this function.
.SS SEE ALSO
.PP
[rtcPointQuery], [rtcSetGeometryPointQueryFunction]
